#ifndef SIMPLEIMAGE_HPP_INCLUDED
#define SIMPLEIMAGE_HPP_INCLUDED

#include "SDL.h"
#include "SDL_ttf.h"
#include "SDL_image.h"

#include "zj_logger.h"
#include "zj_string.hpp"
#include "common.hpp"
#include "AppState.hpp"


class SimpleImage {
    public:
        SimpleImage();
        ~SimpleImage();

        SDL_Texture* texture(); //获取纹理

        void init(AppState* app_state);

        void create_text(const char* text);     //创建文字图像
        void create_image(const char* path);    // 从路径创建
        void create(SDL_Texture* texture);      // 从原有的创建

        void set_color(int r, int g, int b, int a=255);     // 叠加颜色
        void set_color(SDL_Color& color);

        Vec2 flip;
        int x, y;
        int w, h;
        AppState* app_state;

        void draw();    // 画出来（根据内置坐标信息，没有旋转）
        void draw(int x, int y, int w, int h, bool nottesting);
        void draw(int x, int y, int w, int h);

    private:
        void apply_color(SDL_Color& color);
        SDL_RendererFlip flip_state();

        SDL_Texture* m_texture;
        SDL_Color color;
};

#endif // SIMPLEIMAGE_HPP_INCLUDED
